The present invention pertains to a software driver for an input/output device used by a computer system to transmit information over an external connection. In particular, the present invention pertains to a method for recognizing the characteristics and capabilities of the type of connection and for optimizing the transmission of information accordingly.
A stand-alone computer system""s functionality is dramatically enhanced by coupling it with other computers to form a computer network. One popular type of computer network is known as a local area network (LAN). In a computer network, users may readily exchange files, share information stored on a common database, pool resources, communicate via e-mail, and perform other functions as well. Another advantage to computer networks is that they can be accessed from remote locations via a modem or various other types of communication equipment.
Typically, in order to be connected to a LAN, a general purpose computer system requires a peripheral input/output device such as a network adapter or network interface card (NIC). NICs may also be used to connect a computer to the Internet. For a LAN connection, an external connector cable such as an RJ45 connector is plugged into the NIC at one end, and at the other end into some sort of wall jack or similar receptacle that provides access to the network. The external connector cable provides one part of the physical link between the computer system and the LAN over which data, etc., can be transmitted and received.
From a remote location, using a modem or the like, access to the LAN is accomplished using a different external connector such as an RJ11 connector. One end of the external connector is plugged into a modem jack on the computer system, and the other end is plugged into a phone jack or similar receptacle. The physical link between the computer system and the LAN in this case is provided by a dial-up connection through the external connector and through phone lines to a receiver on the network.
The external connector for the direct LAN connection (e.g., the RJ45 connector) and the external connector for the modem connection (e.g., the RJ11 connector) require different software drivers. In order to provide the computer system with the capability for both direct LAN connection and remote access, the computer system (specifically, the communications applications) must be configured according to the appropriate software drivers and protocols. This task is complex and generally requires a level of expertise beyond that of the typical user. Consequently, this task has to be accomplished by trained personnel, usually at a cost, thereby incurring additional expenses over the cost of the connection hardware. Once the computer system is properly configured to provide both direct LAN connection and remote access, user intervention is still often required to connect to the network. For example, the user must still specify the type of connection to be made (direct or remote), and may need to input other information before the connection to the network can be made.
In addition, each of the various types of external connectors have different capabilities (e.g., different transmission rates and bandwidths). For example, the transmission rate over a modem connection is less than that over a digital subscriber line. As described above, user intervention is typically required to identify the type of external connector. Typically, default settings are used in an attempt to marry an application with the type of external connection; however, the default settings may be lacking for some unique applications, and in some cases the defaults do not work. User intervention to change default settings may result in an improvement but, as described above, this can be complex and generally requires a level of expertise beyond that of the typical user.
The problems with the prior art described above are exacerbated by the many other options that are or soon will be available for making remote or direct network connections, such as cable modems, digital subscriber lines, wireless connections, and the like.
Thus, a need exists for a method that considers the capabilities of the type of external connection relative to the various types of communications applications and to the type of information to be transmitted. A need further exists for a method that accomplishes the above and is easily put to use by a computer system user. The present invention provides a novel solution to these needs.
The present invention provides a method that considers the capabilities of the type of external connector relative to the various types of communications applications and to the type of information to be transmitted. The present invention also provides a method that is easily put to use by a computer system user.
The present invention pertains to a method for transmitting a data packet from a computer system to an external device, where the computer system and the external device communicatively coupled by an external connector. Various types of external connectors may be used depending, for example, on whether the connection is a remote connection to a network or a direct network connection (e.g., a local area network). The type of external connector is recognized. An application being used by the computer system to generate the data packet is identified. The data packet is automatically configured depending on the type of external connector. The present invention thus reduces or eliminates the need for user intervention when different types of external connectors are used.
In the present embodiment, the application is identified by monitoring the applications that are executed by the computer system and identifying the application currently being executed. In one embodiment, a memory register of the computer system that monitors the applications is read to identify the application currently being executed.
In one embodiment, depending on the type of external connector and also the application being executed, the data packet is encrypted. In another embodiment, the data packet is sized according to the type of external connector. In another embodiment, the refresh rate and frame size for a data packet containing video data are adjusted according to the type of external connector. In yet another embodiment, error detection and correction are disabled (for example, for a real time data stream). In one more embodiment, the data packet is automatically transmitted when a particular type of external connector is recognized.
These and other advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.